﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using System.Xml;
using System.Xml.Linq;

namespace App
{
	public partial class MainPage : PhoneApplicationPage
	{
        private List<Model.Postos> listaCompleta = new List<Model.Postos>();

		public MainPage()
		{
			InitializeComponent();
			LerXml();
		}

		public void LerXml()
		{            
			List<Model.Postos> lista = new List<Model.Postos>();
			try
			{
				var xml = XElement.Load("Xml/Lista_de_Postos_DPRF.xml");

				foreach (XElement item in xml.Elements("Lista_de_Postos_DPRF"))
				{
					Model.Postos postos = new Model.Postos();					
									
					postos.Id = int.Parse(item.Element("Id").Value);
					postos.SRPRF = item.Element("SRPRF").Value == null ? "" : item.Element("SRPRF").Value;
					postos.Nome = item.Element("Nome") == null ? "" : item.Element("Nome").Value;
					postos.Endereco = item.Element("Endereço") == null ? "" : item.Element("Endereço").Value;
					postos.Telefone1 = item.Element("Telefone_x0020_1") == null ? "" : item.Element("Telefone_x0020_1").Value;
					postos.Telefone2 = item.Element("Telefone_x0020_2") == null ? "" : item.Element("Telefone_x0020_2").Value;
					postos.Telefone3 = item.Element("Telefone_x0020_3") == null ? "" : item.Element("Telefone_x0020_3").Value;
					postos.Telefone4 = item.Element("Telefone_x0020_4") == null ? "" : item.Element("Telefone_x0020_4").Value;					

					lista.Add(postos);
				}

                listaCompleta = lista;
				Results.ItemsSource = lista;
			}
			catch (Exception ex)
			{
				throw new Exception(ex.Message);
			}
		}

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            List<Model.Postos> listaPosto = new List<Model.Postos>();
            Model.Postos posto = new Model.Postos();

            try
            {
                string texto = txtPesquisa.Text;

                foreach (Model.Postos item in listaCompleta)
                {
                    if (item.Nome.Contains(texto))
                    {
                        posto = new Model.Postos
                        {
                            Id = item.Id,
                            Nome = item.Nome,
                            SRPRF = item.SRPRF,
                            Endereco = item.Endereco,
                            Telefone1 = item.Telefone1,
                            Telefone2 = item.Telefone2,
                            Telefone3 = item.Telefone3,
                            Telefone4 = item.Telefone4
                        };

                        listaPosto.Add(posto);                                               
                    }
                }

                listResultado.ItemsSource = listaPosto;
            }
            catch (Exception)
            {
                
                throw;
            }
        }
	}
}